home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / powerd / examples / emptyfile.d < prev    next >
Text File  |  2002-10-28  |  915b  |  33 lines

  1. // creates a file (full of zero bytes) of given length
  2.  
  3. MODULE    'exec/memory'
  4.  
  5. PROC main()
  6.     DEF    args=[NIL,NIL,NIL]:L,ra
  7.     ENUM    FILE,LENGTH,VERBOSE
  8.     IF ra:=ReadArgs('FILE/A,LENGTH/A/N,V=VERBOSE/S',args,NIL)
  9.         DEF    file,buffer,length,wrote,add,realadd
  10.         IF file:=Open(args[FILE],NEWFILE)
  11.             IF buffer:=AllocVec(32770,MEMF_PUBLIC|MEMF_CLEAR)
  12.                 wrote:=0
  13.                 length:=Long(args[LENGTH])
  14.                 IF args[VERBOSE]
  15.                     PrintF('emptyfile v1.0 by MarK 27.8.2001\nFile name: ''\s'', File Length: \d\n',args[FILE],length)
  16.                 ENDIF
  17.                 WHILE wrote<length
  18.                     add:=length-wrote
  19.                 EXITIF add<=0
  20.                     add:=IF add<=32768 THEN add ELSE 32768
  21.                     realadd:=Write(file,buffer,add)
  22.                 EXITIF realadd<>add DO PrintFault(IOErr(),'emptyfile')
  23.                     wrote+=realadd
  24.                 EXITIF CtrlC()
  25.                 ENDWHILE
  26.                 FreeVec(buffer)
  27.             ENDIF
  28.             Close(file)
  29.         ELSE PrintFault(IOErr(),'emptyfile')
  30.         FreeArgs(ra)
  31.     ELSE PrintFault(IOErr(),'emptyfile')
  32. ENDPROC
  33.